/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package picstore.web.usuario;

import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;

/**
 *
 * @author erica
 */
public class UsuarioDAOHibernate implements UsuarioDAO{
    
    private Session session;
    
    //Criação da sessão do Hibernate para mapeamento
    public void setSession(Session session){
        this.session = session;
    }

    @Override
    public void salvar(Usuario usuario) {
        this.session.save(usuario);
     
    }

    @Override
    public void atualizar(Usuario usuario) {
        this.session.update(usuario);
       
    }

    @Override
    public void excluir(Usuario usuario) {
        this.session.delete(usuario);
       
    }

    @Override
    public Usuario carregar(Integer codigo) {
        // codigo do usuario
        return (Usuario) this.session.get(Usuario.class, codigo);
    }

    /**
     *
     * @param apelido
     * @return
     */
    @Override
    public Usuario buscarPorApelido(String apelido) {
        String hql = "select u from Usuario u where u.apelido = :apelido";
        Query consulta= this.session.createQuery(hql);
        consulta.setString("apelido",apelido);
        return (Usuario) consulta.uniqueResult();      
    }

    @Override
    public List<Usuario> listar() {
        return this.session.createCriteria(Usuario.class).list();
       
    }
    
    
    
}
